package com.teaclipse.presentation;
/**
 * Interface for the managed window - Since all of the parameters
  * used here are of type Object, any type of window application can use this
  * interface (awt, swing)
 * <p>Title: </p>
 *
 * <p>Description: </p>
 *
 * <p>Copyright: Copyright (c) 2006</p>
 *
 * <p>Company: </p>
 *
 * @author not attributable
 * @version 1.0
 */
public interface IManagedWindow {

    /**
     * Implementer must support this method to create a new window ,
     * the return value is the window that is being created
     * @param documentName String
     * @param windowID Object
     * @return Object
     */
    public Object createWindow(String documentName, Object windowID);

    /**
     * Command to switch the current window
     * @param window Object
     */
    public void switchWindow(Object window);

    /**
     * Tells to fill the window the given contents
     * @param window Object
     * @param contents Object
     */
    public void fillContents(Object window, Object contents);

    /**
     * Writes the contents of the window (supposed to be for file I/O and
     *  that is how it differs from fillContents )
     * @param window Object
     * @param contents Object
     */
    public void writeContents(Object window, Object contents);

    /**
     * Removes the window
     * @param window Object
     * @param windowId Object
     */
    public void deleteWindow(Object window, Object windowId);
}
